{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {
    "scrolled": true
   },
   "outputs": [],
   "source": [
    "import gym, sys\n",
    "import numpy as np\n",
    "\n",
    "%matplotlib inline\n",
    "sys.path.append('../..')\n",
    "sys.path.append('..')\n",
    "\n",
    "import algorithms, visualize, utils"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Cliff Walking"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {},
   "outputs": [],
   "source": [
    "env = gym.make('CliffWalking-v0')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {
    "scrolled": true
   },
   "outputs": [],
   "source": [
    "Q, sum_rewards = algorithms.n_step_sarsa(\n",
    "    num_steps=3, env=env, num_episodes=300,\n",
    "    step_size=.5, discount_rate=1., epsilon=.022\n",
    ")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {
    "scrolled": true
   },
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAnAAAAFOCAYAAAAGiyDjAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDIuMS4xLCBo\ndHRwOi8vbWF0cGxvdGxpYi5vcmcvAOZPmwAAIABJREFUeJzs3XmcXFWZ//HP093ZyAKEQDYCCRAg\n7EvYZAsIsgvuICiLiig46ozjiDgjojjK4DgyKgr+HBVQVHZlk61ZlLCvSVjCnoRsJCR0ku6ku5/f\nH+dU+qZS3V3ddW9V3873/XrVq6rueurUrVvPPds1d0dERERE8qOu1gkQERERkZ5RACciIiKSMwrg\nRERERHJGAZyIiIhIziiAExEREckZBXAiIiIiOaMATnrFzBrN7KcZbHeqmbmZTUx720X7mRj3MzXD\nfXzUzDb4cXrMbFTM62m1TkslzOxCM3u+hvufbGYLzGzjWqWhEmb2upl9rdJlqi2tc0VfOx/U+niu\nFjPb1czmmtnQWqclbQrg+gAz29zMfh5PXi3xJH2PmR3ZB9I2LZ68RtU6LQUxePQSj2t7sJm3gLHA\n0xklMxWJ/C883jGze83swFqnrb/q4g/7UuDQWqQp+j7wc3dfVsM0dMvMzjCzpl6uvg/w8zTTk4Jc\nnCt6odbHc7fM7MNmdqeZLersItDMBpnZ/5rZYjNbYWa3mNmWhfnu/hwwHfjnKia9KhTA9Q3XA/sC\nnwG2B44Hbgc2q2Wi+rj/I5xUk4/Pl7uyu7e5+3x3b80ofWnbmfAZpwGLgFvNbIuapqiImQ2sdRp6\nwszqzKy+3OXdvcnd38kyTZ0xswnASYTjvt9y90XuvrLW6UjK4bmiLLU8nntgKPAPug6+/gf4CHAK\ncDAwAvhr0W/7/4AvmFlDVgmtCXfXo4YPYBPAgSO6We514D+A3wDvEa4KPxHXvxZoAl4GPlC03iHA\nI0AzsAD4MTAwMX8Q4QewIC4zHTgozpsY05Z8/CbOayRcKX8fWAwsJFzR1SW2PRD4ITAHWAk8BhxV\nlL6jgRfivh8EPhn3M7GLvGgEftrF/EK6Pwk8FLf9QjJvEstMje8HAJcB84CWmL8/SCy/KfBbYCmw\nCrgb2Llov58G3oif9a/AueEnts4yJwBPxDS9Blyc/D5KfJZpMZ2jEtN2jdNOKFr2TGBm3PZLwFcL\n3wfwA+COxLKfjds4OTHtIeBb8fW2wM3AfGAF8CRwfIlj8kLg18C7wJ/j9H0Sn/Ep4Li4r2ldfM6u\njsO6+H18qWid7eN294rvNwauIByL7wH3F77fOP8Mwu/kWOB5oBXYpURaio/5xjj9QuD5xHK/id/z\nv8V8WhbzuS4uuzBO/7ei7XeZzk7y52vAUyW2c1XcTjPwKvCVos/xhfg9rozHxGHAlsCd8Xt9upB/\nifU+DDxHx+/gAsDK+S3QcbwmHxcmjpdvAb8ElhPOC/9a4pj6WtFnOBv4c0zvq8BpRevsRzg+C8fb\nsXRxvBHOOe8BDfH9dnH5XySW+R5wdyfnisJnfD/h3LoSeLxEPpZzPvg8MBtYHZ8/l5jXo99sJ5/1\n8/F7byacp+9MfO4Licczpc/1Drye2NZOwK0x7xYCfwDGdHXcpvUARpX6Tgm/gdXAqYlpE4B2Ev81\nhP+iZrr5n83bo+YJ2NAfQEP8QVwGDO5iudeBJcAXgcnAj+IBeVs8UWwH/L/4wxoc1xkfT3q/AKYQ\nSvbmAz9KbPcnwNuEP9kpwJWEP7mxQD3hZO7xxzsG2Diu10j4w7qI8Ef6ccIf4imJbV9D+CM+BNgG\nOC/+2HaP8yfEz/C/wI5xG3NIL4CbE7e5Y9zHKmB80TKFk/K/EP6sDgG2At4HnJnY5s2EIPAQQgB1\nS1x+SJy/XzxpXBDz4/PAOyRO2MBRhD+uMwkB0mHAi8ClXXyWaSQCOGCj+N07cHRiuc/F7/GjwCRC\noDgfOC/OL/7TuppQkveLxHZb6AiadgfOiZ91u/i5VgM7Fh2Ty4Gvx2UmA8MIx+CfgV3iZ55F9wFc\np8dhnH8JML1one8AM+NrI/yZ3Uoozd4O+G5MX2EbZxCO0YeBA+P3NLxEWvaJ6T2KcMyPjNMvZP0A\nbjnh97UjoQSgHbgD+M+4/XPitvYuN52d5M/NwJVF0/6XEIDtC2wdj5WPJeY7MDemazLwe0KAfCdw\nYkzfbcCziXX2Btpi3m4PnBq/hy8VpaXkb4HwR/llwnlnTHwMSxwv7xDOA9sBX4ppPKDomCoO4OYA\np8V1/pNwHG4V5w8jHMe/J5RSHwnMoOsAbhiwBtg/vv9s3MYLiWWSFzMTKR3APUr4De8Y83QWMdCl\nvPPBh2I6zovLfCm+P6E3v9kSn3Mq4Xg/NR4fuxMu6koFcPWJ72sM4Xh5nY4L9rGEAPCHhN/nbsBf\nCAFsXan9x/VmEI6fzh4zuvuPjNvpLIA7PE7fvMR+v1M0bTrw3XL2l5dHzROgh0Mo/l1CCGYeJpRk\n7Ve0zOvAHxLvh8UD97LEtOITzcWEUrlkqdgZ8Ue/EaF4ejXw6cT8euAV4HvxfeFkNaooPY3Aw0XT\n7gJ+FV9vSziBbVW0zE2EdjwQSu9eYt2r+29RXgC3usTJ4ItF+XBBYp26uK/vdZJXlwH3JNOSWHdy\nXPaQxLSNCQHsZ+P73wN3Fa33K9Y9YT8A/HvRMifFtK+336L8L3zG9vj+MWBAYrk3gU8VrfsVOgKc\nwp/WAfH9W4SSoxfj+yMIf7pdlQZOJ3G1Tzgm/1K0zNmE0rhhiWmn0fUfajnH4W5xG9smlnkZ+GZ8\nfXjMnyFF234a+Hri2F8bTHXxOdc5NhLTL2T9AO4toD4x7XHgmRK/3a+Vm85O0vQ06/8h3QL8uot1\nHPjPxPtd4rR/LnF8FS4QrgHuLfG55/Tgt3AG0FQiPa+TOIclvsPiY6o4gEt+hgZCidZp8f3nCefO\nIYllCqX4JY+3xLF8fnx9NfBtwgXeWNa/mFnneEjkWbKE58A4bcsenA/+Xvz9xWPqoTR+s4SL72WU\nuEgpdTwnptcRSgwfpqMw4CLgnqLlNo2fed8u8nlrQuDd2WPrrn6Lie10FsB9khCkWtH0e4FfFk27\nAbiqnP3l5aE2cH2Au18PjCOUmtxOKP2ZbmbfLFr02cQ6TYQT2XOJ+Qvic6Ft1BRCqUV7YpmHCFfJ\n2xGCrAGEE0lhu22EH+5OZST92aL38xL73otQ2jDTzJoKD0IJy7ZF6fPENh4uY78AfwT2KHpcU7TM\n2m3FPHiEzj/Xb+I2XjKzn5nZcWZW+H1MIQROye0tI+T9TollitNe/H5v4IKi/Pg9IYAZ0+WnDVf6\nexFKU14DTnf3NRA6wRBKM39ZtO0fEPM6Hi9PANPMbDvCn+7PgK3MrNC27mF3Xx23OdTMLjGzmWa2\nNG5vKqF0MunxovdTCCU6yUbs3X2n3R6H7v4sIb9PjenbL65X+M73JvzxLirKg13oON4gnOzTbIw+\nM6a1YAGhepaiaYXfRbnpLDaEcIGXdDnwCTN7xswuNbNDS6yX/I0Wzg/dnTP+zroeAsab2QjK+y10\npatzRrfreGiHtiixzo6EIGRVYvlHykhHI+GYh9CQ//a43jTC+beVUMJWVroInwPWzcfuzged5XXh\nmO/Rb7aEuwhVuK+Z2TVmdrqZDe/mM0EoZdsNOMndC8fc3sAhRcfsW3Fep8etu7/h7rO7eLxRRnrS\nsorwO+o3+leDvhyLP5S74uMiM/sVcKGZXZr4ga4pXq1oWiEQKicwd0KA1dX87pRKT2HfdfH9PiWW\nW0Xllrn77BS2A4C7PxmHLjmK0Lblt8AzZfQELiefCuoIVVN/LjFvUTfrvubuiwkB5mDgBjPb3d1b\n6MjzcwgNfjvTSAgEFwEPunuTmT0Sp00jVP0VXEqowvkaoZRkJfA7QvCftKKbdFcqmb9XEzr6XEQI\n5B5K/AHUEYKRg0tsY3nidUtRwFWp7n6ThWnJ30U56Sy2mFDi0bFR99vNbGvgGMIxe6uZ/dndz+wk\nfd7FtHLPGZXML953YZ3u9t2bdbrTCJxnZlMIjd6foOP3sZCuA6NS6epJPnYnmY+FNJXzm113I+7v\nmdlehKruI4Hzge+b2T7uPq/UOmZ2OuE8cpC7L0jMqiNU+5ca4mVBiWmF7c0glMJ15g1337mL+d2Z\nTyitH8W659DRhDbVSSMJJbz9hkrg+q6ZhAB7cAXbmAXsnyhJAjiIUF31SnysJhT/AxB77hwQ90+c\nD+FH0hNPEQLEMSWuuuYm0refmSUDyf17uJ+urN1W3Me+cZ8luft77n6du3+BUFJ4OKGkchbht3JA\nYnsjCO1/Cvk0q0Tai98/SWhDVupKtCc93K4ilFidG9O9gFACsG2pbSfWayR810fG14VpxxEC7cbE\nsgcBv3P362Pp1xy6LiEqmAXsWjTmUnffaTnHIYTSyu3MbH9CB56rE/OeJJy020vkwcIy0p3U22O+\nHL1N51OUKOFy98XufpW7n0EIbk83s0EVpG8Wie8hOohQhfoe5f0WVpNN3pXyArCLmSVLVvYtY72H\nCB1nvk64EGijI1iaxrq/hd4o53zQWV4nj/lGyv/NrsfdW939Xnc/n1CqNpTQFno9ZvY+Qqnuae7+\nTNHsJwltDEuVqL3XRRKOZf2akuTj2K7SX4YnCIH02gvtOITIFNa/mN0lfo7+o9Z1uBv6gzBUyL2E\ndkK7ERqgf4xwZXFXYrnXSbQNidOagDMS7wcTrt6Oj++LOzEcx/qdGP6H0Hj82LjMFazbeHw8ocrk\nLGBzOhokN1LUkYDYKy/x/mpCEf5HCZ0YphKu4D4c529FaGvyE2CHuNxblNcG7tes2+g22dh8YtzG\nW3GbO8R9NNPRRqWwTKFdyz8TqienEIK2nxDaj2wU599EOOEeTOlODPvHfDqf0E7oc4RSE0+k+yjC\nyeYiwslkx5i+S7r4rNMo3QbxS4SSgqHx/WcJJZtfjZ93F0LnlvMT6xTa1Kxh3fY8ayhqS0MY2uZZ\nQrXtrsB1MT9+080xWWhU/kc6GpXPpPs2SV0eh4nl7iVUgTYDmyamG+GK+zlCidQkQpDxHeDguMwZ\nlGibVSIthXZW/0EItgoddy6kRC/UonX/msyjOG06saNKOensJE0nxOOpITHtIkIbyskxz/4IzE7M\nd+CjiffrtSOKx6ATe+PG77stftZCJ4b3WLcTQ3e/hffFbR4Z91n4DZU6XhpJnEeKlyn+DMXLAMPj\n8XY1IcA9IuatA4d28z1PJxz7hW0NJvyGWkl0DKDzNnCjulimnPPBSXH/58Zl1unE0NPfbInPdzyh\nQ8mehFKwM+J3W/g9XEhHJ4YxhJK0S1n3nLp5nD+OcL65gdBBY5uY11fQSRu7NB6EUrM9Enn+2fh+\nTGKZywkXmEfEz3of4RyRbJs6MX4fW2eV1lo8ap6ADf1BuAr8PqFR+lLCH8fLwH8TA5K43NqTVmJa\nlwFcnFYYRqSFjmFEBhXtvzB8QwuJ4RsSy/w74c+1nXWHEekugBsQTxKvEq7K5xNO9nsnljmO0BOz\nmdAe5FTKC+C8xKPQ+HdifH8q4SqsOe7jmMQ2CssUToqfI1ydvUeoyrofeF9i+XKGETmT0JlgFaFN\nzXmsP2zABwh/4Cvjfh4n9hTt5LNOo3QAN5TQePubiWmn0DGcwlJCKcPJRetNJ3QyqE8cM83EIRMS\ny20dP+MKwsnxaxQFJ5Q4JuP0wrAOLcAzhOCjuwCu2+MwLndW3NYNJeYNJwTec+Lx9hZhiJ1t4/wz\nKCOAi8t+Nn6XbXQzjEjRel0GcOWks5P01MfljktMu4DQ225lPBZuA6Yk5vc4gIvTCsOIFNJW9jAi\niWUuJwYsrDuMSKoBXHy/P6GEsiU+fySut19xPhZt5wcUdVaJ6Sm+mJlIDwO4HpwPziEMH7KGomFE\nevqbLbHeQYRg5p2YhudZt2f9hXQEcIXPVPx4PbH8ZMKFXOF7f5HQE7rTILLSBx0dj4ofFxadO/43\nfs6VhN6xE4q2cz6JIVn6y6PQ5Vmk34ht2V4D9nH34kb2IrlkZucQhgl5f63T0peZ2YnAjcAWHtqN\nygYsNil4mTDEVXGnkVxTJwYRkXy4EhhpZht7H7+dVjXFhvevEkoLdyGU5P5FwZtEWwMX97fgDRTA\niYjkgoeG9t+vdTr6oNGENoRjCc00biWMlyaCu79EGAO031EVqoiIiEjOaBgRERERkZxRACciIiKS\nM/2+DdyoUaN84sSJme5jxYoVDB06tPsFpceUt9lS/mZHeZst5W92lLfZ6i5/n3jiicXuvnl32+n3\nAdzEiRN5/PFsR5JobGxk2rRpme5jQ6W8zZbyNzvK22wpf7OjvM1Wd/lrZmXdI1ZVqCIiIiI5owBO\nREREJGcUwImIiIjkjAI4ERERkZxRACciIiKSMwrgRERERHJGAZyIiIhIziiAExEREckZBXAiIiIi\nOdPv78Qg+dbQuhy8HayG1xptq6G9DdpXQ9PbsHpZx7z2Nli1CFYuAnzd9eoHwvYfhQEp3JLm7Udg\n0bMd7xuGwPgDYeNJlW+7GlqbYeUCWLEg5Fd7W8iX8QdCw+Bap04ke01vw/I3YNz+tdn/6qZwLh00\nIrt9rFkFi56GVYvDObvwID7X1a//vm5gOFfWDwrTvC2k09vCeaLwujC9bTW0tcTn1eCt0LYmPLe3\nQsNGMPnDUD8gu8/ZRyiAq5blb8Ljl8LBP4ABG9U6NetrbYaZv4OtPwAbT6zOPluWhR/o4E3WD9Ca\n34W7v8BBL14LM4bAsPFgVno79YNh2LhwAij8uHHYaDQMHglWv/6Jo/hk4m2w+HlY8gLQHrbrDs1L\nwqO31qyEPb7Q+/UL6bjx+HBSLDZk85A3A4d1TKtrgI3GwJDNQp4UHhttER5WHxdsZ+K8m+HPF0Nb\nc8f6DUNCfjYMDXk+ZHPYaPOw3pomaJoHa1YkTqwlTrbta0J6C0Hb6uWlP9uAobD57iHNVhf2kTzx\nJ98PHAEHfg9GTKgsP0Wqbcbv4L5/Cr+bc5fAwOHV3X/bGrhyIjS/EwKchsHhN1fXAHUDwmOT7eJv\nsZ5t58yGe28Iv7+Bw0JgtGZF4tFU9D4+mpeG33+tbf0BOOHP2QarfYACuGpob4NbPwnz/g5bvR+2\nOzHb/S19OZYIRQ2DYOi4cNIwCz9gbw/pWfJS+BE/dgksmRX+JKf9N4yc0rHe0DGdB0+99cK1cPun\nwx+91cHgzTrSByFoalnOW1t8lAkTJsCK+Z1va82KEFS0r4nBysAwfcET4YRCewwsko+2dd8DbLoD\njNqlY32AQZuEz18/KOTT0LFh2tr8sBDcDNk8ERhFV+0BC1K4D+97b4Zg6OAfwJTTOvJnzv2w+Dlo\nmgutqzqWb1sNCx4LyxQC2vbWkpvemjrYYncYvGnHxJZlIZBtXRXyqXnpuis1DInfVSHAqk8ExIXX\nDeE73XxPmDg65OFGo+Nj8/CHsXIBvPKXsC9vjwHgmvh9tCcCwvh+6UvQ8i6cdHPleVpt78yEJS+m\nt73Vy0OJjrd1lF4M2hi22BOGbxVKi1tbwm+irqEjiK+rBywEzp39ptesCN+JNYTvaujY9H//XXn7\nEVj4dOLCqz4G+PH9RmNg9J7VS0+lXroO7jg9XGi1LAvH8ei9q5uGpS+F4G3HT4bvs311ODbaW8Nz\na3M4/79xF5gxjgZYNiTMX90U8n/A0PUfg0fC8Anx/TAYMip8tmHjAe/6nOvtYfttq0N62lrCxWry\nwi15Tik8F473+oGx9G5AOFbrB4R0vv43uPsL8LvdYdIxMP6g8BixVXXzvAoUwFXD45eGYAngrcZs\nA7iVi+A3O3X6hw10HPyr3+uYNmxLOOYqePrn8LfPrrv8uAPh+Gth+JbppPHZK+Cuc2DLg0NR96rF\n4ZFMT90A2O3zvPJSMxOqcVNl9/T/pLbYExY+Vfl2FsRtbHkoDB8fXg8fD5vvWv422lth5cL1qnr/\n/uwcDjri+K7XbVsdgkH3ELwN2ji9vJp0TPnLPvpDePAb8MbdsPUR6ey/Gub+Hf50WPij7CsGDAsl\nLnUNiT/y1vAn+t6bHRc1EILu4ROKgsL6jj9Nawjnk60/AHt/NZSoF/P2UAtRnAfuIbBomhcuRF6/\nA167vYwPYBxYPxReGBaOyYYhoSS+fgBgoWnB2ANg18/CgCGV5FRlWlvggX8LF4bHXhOCiiUvVD+A\nW/x8eN7n6+GCrTPxPPhg8mbrWZwbs7Tb52DjbeCxH8LMq+CZy8P0A78H+19Q2bb7WF4ogMuSt8Nj\n/wUPXQCTP9JRapKlBY+HE/Fh/xNK0SBU462YF569PbRBWtMEEw6HsfuG6SO2DlW7O54c/nDaWsL0\npS/B9O/CVXvBh2+FMftUlr7X7gjB26Rj4ITruj+5vtRY2f7KlcWPcou94In/DgFQslSvpxY+Ga48\nN9+t99uoawjVosPGrTO5teHd7tetHxhK0Gptry/Ds7+Exq/CaU/mo43Le3Phlo+Eq//j/hBKDNIw\nYKPwXdYN7GgPtGpR+P2vXBhL22LpRCEwa1sdXns7NM2BZa+GP6S6AYmqtIbw57fF7mFe07ywzVWL\n1t2mt69bgtOyDKZfFI73IaPCMkPHhsCqZVkogeysGj1pyCg4+Icw5ZPhvbfFfbR1vH7vTVjwBAtm\nP8OWozcLJcWtq0IzgLY1Ybk5D8ILf4CXr4OT/lK7qrRnLg/5/JE7Qgm/1cdmGlX2zvNh3yN37Hq5\nUufBPhSwlG3r94dHeysseg4e/T78/d9h3AGw1eHlb2d1E7w9Pfwnzn0I3nsLzpzVZ/JEAVyWbj0V\nXrw2NGT/wK/gyZ/APy4MVVLJKqs0LXgiPO98Zu9OWnUNMOHQdadtewLceBzccBx88mHYZNvepW3p\ny3DrKSEQOeFPtb0yrobRe4U/t8UzKqvyWfhUCMb7YtvJamoYDNN+DDefBA+eD9MurXWKulTXvhpu\n+VCokvzYPTBq52x2VAhkh4yEkTtks49yLHgKnrsiXPi1NsOKt8O5buBwmHJqKJEudQwPHhmaagwb\nH9ptdvfnuPmusM1xzG5pZMuuSudfuBZu/xRcexAcdHFovrJyQSgVa2sO1bT1A0LastDaHC5+tz4S\nJh4Vpm2yTW0CuEXPwabbh2YxG5K6hnDuPer/QinkrafAnv8UqlTH7NP1OfWl6+HOs+KFh4X/ra2P\nCBdDfaTjlQK4rMx5KARv+30zFN2awYRpgIerw+0+mM1+FzwRfqhpXnFuNgU+fDv84X1w/dHwifvX\nK8np1sKnQxBo9XDiTen0zOzrtohB28InKwzgngylpRKaH+xxLjzxo1AFn3V70t5yZ/s3/xveeQw+\neGN2wVtfMnpPGH15rVPRYceTQ3vVu8+Bm7o4327/scpKyDvz6q2h1mXqv3ZM23TH2pXAbbFX9ffb\nVwwcFmp8bjsV/v6tMK3Q2av4gqF+UChgmf8YjN0P3vedUB3fBztEKIDLysPfDj3+9vtmxwEyZt9w\ncMy5P8MA7kkY9770tztyh1AVcf1R4Yr2uGtDVcXq5R0N5VtXheqS5qWhsXnhuWVp+DEMHgmfaKxe\nL9da22TbUPqw4EnY9TO928aKBaEaa/QGfPItduiPQkP3O04PVambbFPrFHVobYb7vgJzHmDMkllw\nwLdh8km1TtWGa9LRcNbLoSPB8tc6qnXrGuCt++Hpn4ZqtiwCuFlXh6YHySq7kTvCG38LVcJ19Z2v\nm6Y1K+DdV2GnT1dnf33VqJ3h00/DqiXw9sOhSnTFgvWXa10VSo/3+Toc+N1sjo2UKIDLwlv3w5v3\nhuqeZElTw+BQB//8/wuNK5vf6Zg3aBM4/bmel2wlrVwc2oeM/lLvt9GV8e+Dj98L1x8Dv9+v62UH\nDA2fafCm4XnbE+GQSzoa4W8IrK7yjgyFdTfkq+diDYNCFfxVe8FfPw4nP1RZlcbTPw8daz7xQOVX\n2W/cHdrpbXU4szc6jO0O+I/KtieVqx8AU05Zf/ryN8JzVx2+emvVklACt+eX1g3URu4YLnaXv1G9\nC493ZgEeOlJIaGqwzXHhkXMK4LIw+6Zwlbfb59eft+tn4fEfweZ7dAQzq5bAMz8PVwQ7fLz3+134\nZHjOsrRmzD5w2uPw1n2hd9qgTTq6dTcMDu8Hbdynr1qqaos9Q3Aw8+rerV/okbfFHumlqT/YeBIc\n/Vu4+US4as/QznSvr4aTc0/MvhnuOQ/wMITC9h+pLF1vNYbfwoduZc5D09mulgNQS9cKw/5kMW7Z\nS38O7V+L29cVOhEseaF6AVyhB+pmCuD6GwVwWWhrCd30SzXSn3Lq+j/qttXw3JWhqq2cAM7bQyPu\npnlh3LZ9vxEGNy10YMi6tGbjibDxmdnuo78Yf3DovHL7p3q/jVG7hqBY1rXdB8PQDM9dCY98P5Rq\nH3NVGB6j0BOyK/MfD+MzjpkaOti8dlsKAdx9oZS9jzRyli7Uxb+/9pQDOHd4/teh49EWRW1fC51M\nlrwA2xyb7n47s/i5cDz2tvOZ9FkK4LLQ3tpxcihH/cBQvF1uVduCJ8LAu0PHhvZlL/4B9v93ePWv\nYQiAUuMwSW1M/jB87o0QpPdWXxjCo6+a8snwePtR+MvH4I+HhOmbbAcfb+y8yn75G3DTCWGg2pP+\nAvf+UwjgKhnnqfnd8Bs+4Nu9W1+qa20JXMpVqPP+AfMfhcN/uv6xNGSzMOj3oqfDkCeVDIXT2hyO\n42WvhceKtzvG1Fy1ODTRWbU4DCszarfqtbmTqlEAl4X2NWFMpZ7YYk945Zby/kDeuCc8f+qp0Ing\n1lOg8Z/DtJ1VMtanmPXLEcD7nLH7wqeeDFWia94LYz5dd2ToMb3R5usu294KN50UGit/7B4YOjqU\nhrz0p9Bburc9huc8AHjsbS59XiGgSbsE7vEfhba/u5xRev6oXUJp8axrwgDqG08KQ6gMG9fxPHRc\nuPgYOrZ0ae47s+DqvUIQt5aFAHHwZuF5xCQYvU94vW1GneakphTAZaGnJXAQqj2f/3UYjby7Ox68\neU84CQwdHR6nPhoGGHRP724JInkzZDPY9azweos9Q4/p64+Cj9+3bhX0M78MJSAnXAeb7RSmTTw6\nPD/1k/A72vaE0K6uJ+Y0hj9DaLH8AAAgAElEQVTbsd108JG+weI5Os02cEtnhzbQ+32z86GSjv5t\nOIcvey30jF32WhgstmluvI9zQv0gOO2J9YeheXt6CN4O+0n479h4UiipVynbBkUBXBYK9x/siULH\ngwVPdh2EtTbDvIfW7SBhdeFOCiISbHlIGH/tpg+GAagP/a/QcaitGf7xbZhwWKjeLhg6GkZPhRm/\nDe9f+lNocF7ouff6nfDyDeF2b6uXh8Fqh4wKbVBXzg+leYueDeNFqf1bPqwtgUuxCvWlPwEexirs\nzIgJpUvn3MPQSyvibcWWvBCGpJn39/UDuCUvhKY3e3yx5/810m/om89Ce2vPq1A33w2w0IamqzHi\nCldeGthVpGuTjobjfh+aGPwhjo04YGgIvqb9eP2mCodfFqpQtz4yjHX4l4+F21/NfywMBjtwRAza\nhode5ouehdXLwmCgDUNC9dduZ1f/c0rvZNELdeXCcHwMG9uL9FjoRT1kZLhw2PpIeOhbHb1Ik96Z\nBZtMVvC2gdO3n4XeVKEOGBqu+AtDgXTmzXtCiVvx7a5EZH3bfzTcNmfe9NAbb8W80KC71A29xx0Q\nHhB6t95wTBiiBEIV6wev2zDuILKhWNsLNcUSuOalMCil2yRaXQjkFj+3/rylL8DmXdyUXjYICuCy\n0JsqVAjVqLN+D5cNC1dxQ8eFNhAFrfHm8mP20bASIuUaOibcDaEnd0TY+v3wudfDBVPzu7D75zW2\nYX+TRQlc85Jwx5m0jNoFXr5x3c5trS3hzgo7fCK9/UguKYDLQm+qUCGM5zZ0bBjnrWVZ6BbevqZj\n/pBRMHZ/mHJaemkVkdKGjYOdKhi/T/q2LMaBa14aeqCmZdQu8NyvQtXs0NFh2rJXQtBZGBRYNlgK\n4LLQ2xK4UbuExtYiIpKtLMaBa1mabmBVuHvC4uc7Arh3ZoVnBXAbPN3nJQu9LYETEZHqyGIcuOal\n6Vahbr5reE62g1vyQnjedIf09iO5pAAuC73pxCAiItVTl8E4cM1L0uvEALDRFuHODcmeqEtegOET\nYOCw9PYjuaQALgu9rUIVEZHqsJTHgVuzKgzEm2YbOAhNa94pCuBUfSoogMuGqlBFRPq2tHuhtiwN\nz2lWoUII4OY/Br8YFx4Ln1QAJ4A6MWTDVYUqItKnpT0OXPOS8Jx2CdzuXwi1OoW2elYHu5+T7j4k\nlxRlZKGtFzezFxGR6km7BK45lsCl2QYOYLMpcMTl6W5T+gVVoWZBJXAiIn1b2uPAFQK4ISlXoYp0\nos8FcGZ2oZnNNbOn4+PYxLzzzWy2mb1oZkfVMp1dalMnBhGRPi3tm9kXqlDTLoET6URfjTJ+7O6X\nJieY2U7AycDOwDjgbjPb3j3NPuApcXViEBHp0zLrxKAATqqjz5XAdeFE4Fp3b3H314DZwL41TlNp\nGgdORKRvS70Tw1LAdJ9qqZq+GsCdZ2bPmtmvzaxwOTMeeCuxzJw4re9pVycGEZE+LfVODEtg8Cah\nl6hIFdSkmMjM7gbGlJh1AXA58F3A4/OPgLN6uP2zgbMBRo8eTWNjYyXJ7VZTU9M6+zhodQtvz32b\nVzLe74agOG8lXcrf7Chvs1Vp/g5pnsN+wMwZz7Fwfqm/o56Z8uYLjGgfwiP94DvXsZuttPK3JgGc\nux9RznJmdiXw1/h2LjAhMXvLOK3U9q8ArgCYOnWqT5s2rddpLUdjYyPr7OOZdiZsNYkJh2a73w3B\nenkrqVL+Zkd5m62K8/fdV2EG7LTj9uy0cwXbKVhyCQwY1y++cx272Uorf/tcWa+ZjU28/RBQuIfI\nLcDJZjbIzCYBk4FHq52+srS3Qr2qUEVE+qy0b2bfvEQdGKSq+mJL+0vMbA9CFerrwOcB3H2Gmf0J\nmAm0Auf2zR6oHgI464tZKyIiQMc5Os2BfIdvnc62RMrQ56IMd/9UF/MuBi6uYnJ6rnAyUC9UEZG+\nK/Vx4JZqEF+pqj5XhZp7hZOBeqGKiPRdafZCdQ9VqBrEV6pIAVza2teEZ5XAiYj0XWmOA7emKQSC\nagMnVaQALm2Fk4E6MYiI9F1plsAV7oM6WFWoUj0K4NJWCODUiUFEpO9K82b2hfugqgROqqisAM7M\ntjezE+PrYWamy4zOqApVRKTvW1sCl0IV6ur3wvPAEZVvS6RM3QZwZnY6YQy2H8dJ44E/ZZmoXFMn\nBhGRvi/NceDWnvd14S7VU04J3FeAqcAyAHd/kdK3wRJQCZyISB5YisOIFNrRqemMVFE5Adxqd28q\nmpbSwDn9kErgRET6PrNw4/k0OjGsPe/XV74tkTKVE8C9Y2bbE+6MgJmdBszJNFV5pqJ0EZF8qGtI\naRy4QgmcAjipnnKijK8Avwd2MLPXgZXACVkmKtdUhSoikg9Wn04Vqi7cpQa6Pdrc/SUz2w/YHjDg\nxT55D9K+QlWoIiL5YPUqgZPc6jSAM7OdOpm1g5nh7jMzSlO+qQRORCQf6hpS6oVauAe2Ajipnq6i\njFsJ7d4M2ApYHt9vArwBTMo8dXmkEjgRkXxIuwpVvVClijrtxODuk9x9G+CvwMnuvqm7jwQ+Dvyl\nWgnMHbWFEBHJh7qUq1BVAidVVE4v1EPc/c+FN+5+HXBIdknKOVWhiojkQ11DuuPA6bwvVVROAGdm\ndnDizYFlrrdhUhWqiEg+pNWJYW0VqkrgpHrKuVw4F/iDma0gtIcbDJySaaryTFWoIiL5oHHgJMfK\nGUbkQTPbBtghTnrR3Vdnm6wcUxWqiEg+aBw4ybFyj7bt6Gj3tgZ4IZvk9AOqQhURyQerT3cYEZXA\nSRV125bNzD4F3AXsER93m9mpWScst1QCJyKSD3UN4Gl2YlAAJ9VTTpTxNWBvd58PYGZjgDuBa7JM\nWG6pBE5EJB/q0iqBUxWqVF9ZvUkLwVvxaylBP2QRkXzQrbQkx8oJ4F4xs++Y2bj4+DbwatYJyy1V\noYqI5IPGgZMcKyeAO4fQA/XZ+NgR+HyWico1VaGKiOSDxoGTHCtnGJGFwMlVSEv/oBI4EZF8SGsc\nuLW9UDXGvVRPOb1QP2FmI+Lri8zsDjPbO/uk5ZRK4ERE8iGtceC8NWzLrPJtiZSpnMuFb7n7cjPb\nFzgK+B3wv9kmK8dcnRhERHIhtV6obRpCRKqunAAu1glyJPArd/894XZaUkqbqlBFRHLBUhwHTu3f\npMrKCeDczD5BaAd3d5w2MLsk5Zy3hnYQagshItK3pTkOnC7apcrKiTK+RLh5/a/c/TUzmwzcl22y\ncqxtjX7IIiJ5YCnezF4lcFJl5fRC/QdwUuL9y4SgTkppb1UHBhGRPKhL62b2bbpwl6rr9Igzsy+7\n+0/M7JJS893969klK8dcRekiIrmQ2p0YWlUCJ1XXVaTRHJ9XVCMh/UbbmlAsLyIifVtdg3qhSm51\nGmm4+y/j83eql5x+wFuhXlWoIiJ9ntWn1Au1VRfuUnXlDOQ73MwuMbPH4+OHZja8GonLJZXAiYjk\ng8aBkxwrpxfqr4HNgH+Kj5HA/2WZqFxTCZyISD5YijezVxs4qbJyiop2cfcpiff/MLNZWSUo9zQe\nkIhIPtSleDN7nfelysopgZtnZqMKb8xsM2BuJTs1s4+Z2QwzazezqUXzzjez2Wb2opkdlZh+dJw2\n28y+Ucn+M9WuKlQRkVxI62b2KoGTGign0lgMPGNmf43vjwMeLAwv0svhRJ4HPgz8MjnRzHYi3PFh\nZ2AccLeZbR9n/4xwO685wGNmdou7z+zFvrPVripUEZFcSOtm9hoHTmqgnCNuZnwUXFnpTt19FoCZ\nFc86EbjW3VuA18xsNrBvnDfb3V+N610bl+2bAZxK4ERE+j6NAyc5Vs6dGKo5jMh4YHri/Zw4DeCt\noun7dbYRMzsbOBtg9OjRNDY2ppvKIk1NTWv3sdviBTS0ruTJjPe5oUjmraRP+Zsd5W220sjfbee+\nzbg1LTxY4XZ2XbyIAf3ovK9jN1tp5W+3AZyZbQH8N7CVux9iZrsB73P3X3Sz3t3AmBKzLnD3m3uV\n2jK5+xXAFQBTp071adOmZbk7GhsbWbuPRSOgdSBZ73NDsU7eSuqUv9lR3mYrlfy9/zZYQuXbWTQC\n1tT3m+9bx2620srfcur6rgRuB74Y378AXA10GcC5+xG9SM9cYELi/ZZ0dJjobHrf0q6b2YuI5EJa\nd2JwjQMn1VdOL9TxsbStDcDdVwPtGaXnFuBkMxtkZpOAycCjwGPAZDObZGYDCR0dbskoDZXRzexF\nRPIhrZvZqxeq1EA5Adw6R7eZbQKs1/ugJ8zsQ2Y2BzgAuNXM7gRw9xnAnwidE+4AznX3NndvBc4D\n7gRmAX+Ky/Y9Gg9IRCQfrB5wcK9sOzrvSw2Uc8TdYGa/BIab2RmEqtRfV7JTd78RuLGTeRcDF5eY\nfhtwWyX7rQpVoYqI5EPhXO1tlY0eoBI4qYFyeqFeYmanApsAxwKXufvVmacsr1SFKiKSD4Wgq9IS\nNI0DJzVQ1hHn7tcA12Sclv5BJXAiIvlQCOAqHQuuXePASfWV0wZOekIlcCIi+VC42K60I4N6oUoN\nKIBLmxqziojkQyHoqnQoEZ33pQYUwKVNVagiIvlgiU4MlVAnBqmBcu7EsFOJycvcvW8OpFtrqkIV\nEcmHukQnhkoogJMaKKeo6DbCXRCWxfcbAwvNrBk4xd2nd7rmhkglcCIi+ZBmJwad96XKyqlCvQn4\niLuPdPeRwIcJg+2eCfwky8TlkkrgRETyIa1ODO0qgZPqKyeAm+buNxXexBvRH+rujcCQrBKWW7oS\nExHJh7RK4FzjwEn1lRPA1ZnZ+wpvzOyAxHpZ3RM1v1SFKiKSD2tL4NKoQlUJnFRXOZHGucAfzWxl\nfL8R8EkzGwb8OLOU5ZWqUEVE8mFtCZw6MUj+lHMrrQfNbFtghzjpRXdfHV//NrOU5VF7G+AqgRMR\nyQONAyc5Vu44cA1AC9AGbNfJ0CJSaAirH7KISN+nceAkx8oZB+5c4AfAEjravDmwTYbpyqdCMbyq\nUEVE+j6NAyc5Vk5R0b8Au7j7G1knJvfa1oRnlcCJiPR9GgdOcqycKtT5Ct7K1K4SOBGR3EhzHDj1\nQpUqK+eS4S4zuwS4FmguTHT3mZmlKq/aVQInIpIbaZTAeTvgHe3pRKqknCPu0/H5Y4lpagNXSuEq\nTj9kEZG+L41x4ArrqgROqqycYUQmVSMh/UKhE0O9qlBFRPo8S6ETQ6H0Tp0YpMo6DeDMbJC7t5jZ\nRqXmu/vKUtM3aOrEICKSH3UpVKFq+Cipka6OuIeBvYAmQpWpJeY5oMuNYhpGREQkP9LoxKASOKmR\nTgM4d98rPpc72K/oSkxEJD/S6MSgNnBSI10GZ2ZWb2ZPVisxuVfohapODCIifV8qvVDVeU1qo8sA\nzt3bgCYzG1yl9ORbuzoxiIjkRhpVqCqBkxop55LhReABM7uO0B4OAHf/eWapyqs2lcCJiOSGpXAz\n+7Vt4HTel+oq54hrAGYAUxLTPJvk5JyGERERyY+6FG5mv7bts0rgpLrKGQfuzGokpF/QQL4iIvmR\nxs3s1QtVaqTbSMPMvlhquqpQS9CttERE8iOVXqgafUBqo5wjbp/E68HAYcB0QAFcMXViEBHJD40D\nJznW4ypUMxsL/CyzFOXZ2ipU/ZBFRPo8jQMnOdbjQXrd/W1g+wzSkn/tuhODiEhupHIze7V9ltro\naRu4OkKV6sLMUpRnagshIpIfa0vgUqhCVQmcVFlP28C1AjOBr2aTnJxzVaGKiORGXQrjwOnCXWpE\nw4ikaW1bCP2QRUT6PEthHDh1YpAa6TTSMLNLulrR3b+efnJyTldiIiL5oXHgJMe66sSwIj7GAJ8A\nBsTHx4HR2Scth1SFKiKSHxoHTnKs0wDO3b/j7t8BtgT2cvevuvtXgb2BCZXs1Mw+ZmYzzKzdzKYm\npk80s1Vm9nR8/CIxb28ze87MZpvZZWZmlaQhE/ohi4jkh8W/wDRuZq8Ld6mycoYRGePu7xTexNdj\nKtzv88CHgQdKzHvF3feIj3MS0y8HPgdMjo+jK0xD+lxt4EREcsMsBF5ptIFTL1SpsnICuBlm9isz\nOyA+riD0RO01d5/l7i+Wu3wcPHiEu093dwd+B5xUSRoyoRI4EZF8qWtQL1TJpXICuM8A7wI/jY9l\nwFkZpmmSmT1lZveb2cFx2nhgTmKZOXFa36I7MYiI5IvVqxOD5FI5w4gsB77W0w2b2d2Urmq9wN1v\n7mS1t4Gt3P0dM9sbuMnMdu7Fvs8GzgYYPXo0jY2NPd1EjzQ1NdHY2MhWb7/MNsD9D/4d190YUlHI\nW8mG8jc7yttspZW/B7XD22+9wSu93NaopU+zC/DYE0+xYqPlFaenL9Cxm6208jezMl93P6IX67QA\nLfH1E2b2CuG2XXMJnSkKtozTOtvOFcAVAFOnTvVp06b1NCk90tjYyLRp0+DhB2AeHHrY+zsax0pF\n1uatZEL5mx3lbbZSy98Zg5gwbgwTerutFxfCq7DPvvvDqB6XN/RJOnazlVb+9qkow8w2Nwvl0Ga2\nDaGzwqvx/qvLzWz/2Pv000BnpXi1094KmII3EZG8qLQTg3qhSo3UJNIwsw+Z2RzgAOBWM7szzjoE\neNbMngauA85x9yVx3heBXwGzgVeA26uc7O61t6onkohIntQ1VNgLVZ0YpDbKuZn9CKDJ3dvNbBdg\nF+AGd1/d2526+43AjSWmXw9c38k6j8d9913trfoRi4jkSaWdGNo1jIjURjklcPcBQ8xsDHAncCax\nfZkU8baOe+uJiEjfl9Y4cDr3S5WVE8CZu68AjgeudPejCHdjkGIqgRMRyZfUxoFTCZxUVzkB3GAz\nGwQcCdwTp1VwtPdj7a1qyCoikid1GgdO8qmcAO6PwHxgEvD3WJXanGmq8srbVAInIpInFfdCVScG\nqY1uA7h4Q/ttgP3dvR1oAj6SdcJySVWoIiL5UtegEjjJpU6jDTM7tsS05NtOB9LdYLkCOBGRXElr\nHDi1gZMq6yra+Nf4PBjYB3guvt8VeBS4LcN05ZPawImI5Eul48CtvQe2Lt6lujqtQnX3w9z9MOB1\n4EB339Pd9wTeB7xWpfTlS7vawImI5EpaN7NXCZxUWTmdGHZx90cKb9z9UUIpnBRTFaqISL5YfWXD\niKwN4HTul+oqJ4BbYWanFd6Y2anAyuySlGPqxCAiki91DR23w+qNtVWouge2VFc50caZwFVmdmV8\n/xxwenZJyjG1gRMRyZe6FErgdN6XGugygDOzOmCAu081s+EA7v5eVVKWRxoHTkQkX6wB2isY2lQ1\nL1IjXZb5xnHfro6v31Pw1o32VvVEEhHJk0EjYPXy3q/frhI4qY1yKu1nm9nEjNPRP7S3qieSiEie\nDB4JzUt7v7636bwvNVFOcdFw4Fkze4hwFwYA3P3jmaUqr1SULiKSL4M2heYlvV9f532pkXKOuqvj\nQ7rjbWCDap0KEREp1+CR0NYCa1bBgCE9X1+dGKRGug3g3P231UhIv6ArMRGRfBm8aXhuXgIDxvd8\nfXVekxrp9qgzswbgLGAPwm21AHD3szJMVz6pDZyISL4MHhmeW5bC8F4EcBo+SmqknE4MvwQOBI4H\nXibcF3VVlonKLVcvVBGRXEmWwPWGqlClRsoJ4PZ199OBd939P4GDgJ2zTVZO6V6oIiL5UiiB621P\nVDWdkRopJ4ArlLa1mdlG7r4M2CLDNOWXfsgiIvlSaQlcu4YRkdooJ9pYYmabAncAt5vZYmButsnK\nKVdbCBGRXKm0BE5VqFIj5QRwx7l7m5ldAHwS2AT4XbbJyimVwImI5MvA4eFG9L0ugdN5X2qjnKPu\nMDN7yN2b0XhwXVMbOBGRfLG6OJivSuAkX8ppA/dVYI6Z3Wdm3zKzA8x0tJbkuhITEcmdwRXcjUHj\nwEmNlDOQ73FxLLj9gfcDvwdGAhtnnLb80XhAIiL5M3hkGAeuN3TelxopZyDfUcDhwJHAAcCLwD0Z\npyuf1BZCRCR/KimBa1cVqtRGOdHGAuBh4CLgi+6+Jtsk5ZiK0kVE8mfwSHj3ld6tq6YzUiPlHHWn\nEErgfgTMM7N7gLvd/clMU5ZH7boTg4hI7gyqsARO48BJDXTbicHd/+Tu5wB7AdcAXwAeyzphuaR7\noYqI5M+QkdDyLnh7z9dVL1SpkW4DODP7FzO7DZgHnA78inBvVCmmKlQRkfwZtGkI3lqW93xdtX2W\nGinnqNuMUH369zgWnJTi7eGhKlQRkXxZezeGJTB4k56tqxI4qZFyqlC/Sagy3Sn75ORYe1t41pWY\niEi+FO6H2puhRDSAu9RIOVWoxwAzgBvi+6lm9pesE5Y77a3hWVdiIiL5UiiBW9WLjgy6B7bUSDl3\nYrgI2AdYCuDujwPbZpmoXHKVwImI5FLFJXAK4KT6ygngcPf5RZNaMkhLvhVK4BTAiYjkS7INXE+5\nho+S2igngHvPzEYDDmBm04B3K9mpmf2Xmb1gZs+a2Y1mtkli3vlmNtvMXjSzoxLTj47TZpvZNyrZ\nfyZUhSoikk+DYglcb25orxI4qZFyArjzgduBSWbWSBgL7msV7vcuYBd33w14Ke4DM9sJOBnYGTga\n+LmZ1ZtZPfAz4BhCZ4pT4rJ9h6sETkQklwYMgaFj4a37er6ueqFKjZTTC/UR4DDgk8AlwM7u/kQl\nO3X3v7kXIh6mA1vG1ycC17p7i7u/BswG9o2P2e7+qruvBq6Ny/Yd6oUqIpJfe/4TvHEXLOjh35vG\ngZMa6TKAi6VfT7r7Mne/3d1vc/eKqk9LOItQwgcwHngrMW9OnNbZ9L5DJXAiIvm1xxdg4Ah49Ac9\nW08lcFIjXUYb7t5mZk1mNring/ia2d3AmBKzLnD3m+MyFwCthGrZ1JjZ2cDZAKNHj6axsTHNza+n\nqamJ6Q8/xP7ArBdfYsHibPe3IWlqasr8+9uQKX+zo7zNVhb5O2nk8Wz10h949I6rWTV4y+5XAN7X\n0syi+Qt4uR991zp2s5VW/pZTXPQi8ICZXQc0FSa6+8+7Wsndj+hqvpmdARwPvN/dPU6eC0xILLZl\nnEYX00vt+wrgCoCpU6f6tGnTukpKxRobG9l/t8nwPEzZaVemTMl2fxuSxsZGsv7+NmTK3+wob7OV\nSf427QBX/JH9hs6Ag08rb50ZxvjxWzG+H33XOnazlVb+ltOJoYEwkO8Uwnhw+wBTK9mpmR0NfB34\noLuvTMy6BTjZzAaZ2SRgMvAo4U4Qk81skpkNJHR0uKWSNKRO48CJiOTbsLEw8SiYeVVHu+buqBeq\n1Ei30Ya7n5nBfn8KDALuMjOA6e5+jrvPMLM/ATMJVavnuofIyMzOA+4E6oFfu/uMDNLVexoHTkQk\n/3Y+Hf76CXjzXph4ZPfLt2scOKmNmhx17r5dF/MuBi4uMf024LYs01URjQMnIpJ/234QBm0CM39b\nXgDnKoGT2tBlQ1pUAicikn8Ng2HHk2HGb2DZ92DjiWG6Oyx+Dpa9Bk3zYMU8eG8utK3WhbvURKfR\nhpkNdfcV1UxMrqkNnIhI/7Dv+TDrGvjbZ+Gjd8HyN+De8+DVWzuWsXoYOgbG7BPazYlUWVfRxgPA\n3mZ2lbt/qloJyq21VagK4EREcm3EVnDopXDX5+GafWHhU6Fk7pBLYKvDYeg42GgLVZ1KTXUVbWxk\nZnsTgrgpgCVnuvvMTFOWN2urUPWDFhHJvV0/F0rcFj4N+/wr7P5FGDGh+/VEqqSrAO4y4CpgW9bv\nPODANlklKpdUAici0n+YwUk31zoVIp3qNNpw98uBy83sWnc/uYppyie1gRMREZEqKWccuJPNrAHY\nIU56MXEjeilQL1QRERGpkm6jjdgO7gZgdWEdM/uouz+RacryRuPAiYiISJWUcyuty4Cz3H2yu08G\nPhOnSZKrBE5ERESqo5wAbqi731N44+73AkOzS1JOtasNnIiIiFRHOQHcSjObVnhjZocCKztffAOl\nEjgRERGpknKijS8D15lZS3w/EPhIdknKKbWBExERkSoppxfqY2a2Hev2Ql2TbbJySFWoIiIiUiVl\nRRsxYHs+47Tkm6pQRUREpErKaQMn5VAVqoiIiFSJAri0aCBfERERqRIFcGnRrbRERESkSsq5E8MW\nwHnAdsnl3f3jGaYrf1QCJyIiIlVSTrRxM/AkcDfQlm1yckxt4ERERKRKygngNnL3czNPSd6pBE5E\nRESqpJw2cI+Y2a6ZpyTvCm3gVAInIiIiGSunuOgXwANm9hbQXJjo7vtmlqo8am8NwZtZrVMiIiIi\n/Vw5AdzVwMWEdnBqA9eZ9laoU+mbiIiIZK+cAK7Z3S/NPCV5194KpvZvIiIikr1y2sDdYWZHZ56S\nvPM2dWAQERGRqigngPsccJuZLTOzhWa2yMwWZp2w3GlvVQAnIiIiVVFOxDE181T0B96qHqgiIiJS\nFd0GcO7+RjUSknsqgRMREZEqKedWWosAL57u7ltkkqK8alcbOBEREamOnlahDgZOBdZkk5wcc5XA\niYiISHX0pgr1P8xsOvDdbJKUU+1qAyciIiLVUU4v1HWY2TaAqk+LqQ2ciIiIVElP28DVx3W+nGWi\ncknjwImIiEiV9LQNXCsw3911S61iqkIVERGRKum2CtXd34jt4JYB+wA7Z56qPFIVqoiIiFRJpwGc\nmV1tZrvH1yOB5wg3tb/LzD5bpfTlhwI4ERERqZKuSuD2cvdn4utPAbPcfWdgb+C8SnZqZv9lZi+Y\n2bNmdqOZbRKnTzSzVWb2dHz8IrHO3mb2nJnNNrPLzMwqSUPqvE03sxcREZGq6CqAa068Pgi4EcDd\n51BiYN8eugvYxd13A14Czk/Me8Xd94iPcxLTLyfcl3VyfBxdYRrS1d4KdWoDJyIiItnrsg2cmY0z\nsyHANOD+xKzBlezU3f/m7q3x7XRgy27SMRYY4e7T3d2B3wEnVZKG1KkKVURERKqkqwDuP4GngZeB\nh9x9JoCZ7Q+8mWIazlZTd/gAAAyuSURBVAJuT7yfZGZPmdn9ZnZwnDYemJNYZk6c1neoClVERESq\npNOIw93/bGYPAmOAZxKz3iRUZXbJzO6O6xa7wN1vjstcQBia5Jo4721gK3d/x8z2Bm4ysx73ejWz\ns4GzAUaPHk1jY2NPN9EjTU1NLF+2lDUNznMZ72tD09TUlPn3tyFT/mZHeZst5W92lLfZSit/uywy\ncvf5wPyiafPK2bC7H9HVfDM7AzgeeH+sFsXdW4CW+PoJM3sF2B6Yy7rVrFvGaZ3t+wrgCoCpU6f6\ntGnTyklyrzU2NjJi6BAYvgVZ72tD09jYqDzNkPI3O8rbbCl/s6O8zVZa+dvjW2mlwcyOBr4OfNDd\nVyamb24WRsONt+yaDLzq7m8Dy81s/9j79NPAzTVIeud0M3sRERGpklpFHD8FBhHGlAOYHnucHgJc\nZGZrgHbgHHdfEtf5IvAbYAihzdztxRutqXbdSktERESqoyYRh7tv18n064HrO5n3OLBLlumqiErg\nREREpEpqUoXaL+leqCIiIlIlCuDSonHgREREpEoUwKXF1QZOREREqkMBXFpUAiciIiJVogAuLWoD\nJyIiIlWiAC4tKoETERGRKlEAlxbdC1VERESqRAFcWlQCJyIiIlWiAC4t7a1QpzZwIiIikj0FcGlw\nVxWqiIiIVI0CuFS0hydVoYqIiEgVKIBLgXlbeKEqVBEREakCBXApWBvAqQpVREREqkABXAqMQgmc\nAjgRERHJngK4FDS0rQovBgytbUJERERkg6AALgUD1ywOL4aNq21CREREZIOgAC4Fg9a8E14ogBMR\nEZEqUACXgoGFAG6oAjgRERHJngK4FAxc/Q5YHWy0Ra2TIiIiIhsABXApGLRmMQwdo3HgREREpCoU\nwKVg4Jp3VH0qIiIiVaMALgWhBG5srZMhIiIiGwgFcCkYuGaJeqCKiIhI1SiAq1Tbaga2vqsATkRE\nRKpGAVylVswPz2oDJyIiIlWiAK5STfPCs0rgREREpEoUwFVqhQI4ERERqS4FcJVqejs8qxeqiIiI\nVIkCuEqtmIdTBxttXuuUiIiIyAZCAVylmubRMmCzcCstERERkSpQ1FGppnmsHrBZrVMhIiIiGxAF\ncJVaMY+WgaNqnQoRERHZgCiAq9QHb+DV8WfXOhUiIiKyAWmodQJyb9PJrBo8t9apEBERkQ2ISuBE\nREREckYBnIiIiEjO1CyAM7PvmtmzZva0mf3NzMbF6WZml5nZ7Dh/r8Q6p5vZy/Fxeq3SLiIiIlJL\ntSyB+y93383d9wD+CvxHnH4MMDk+zgYuBzCzkcC3gf2AfYFvm9mmVU+1iIiISI3VLIBz9+WJt0MB\nj69PBH7nwXRgEzMbCxwF3OXuS9x9KXAXcHRVEy0iIiLSB9S0F6qZXQx8GlgGHBYnjwfeSiw2J07r\nbLqIiIjIBsXcvfulertxs7uBMSVmXeDuNyeWOx8Y7O7fNrO/Aj9w94fivHuAfwOmxWW+F6f/O7DK\n3S8tsd+zCdWvjB49eu9rr7023Q9WpKmpiWHDhmW6jw2V8jZbyt/sKG+zpfzNjvI2W93l72GHHfaE\nu0/tbjuZlsC5+xFlLnoNcBuhjdtcYEJi3pZx2lxCEJec3tjJfq8ArgCYOnWqT5s2rdRiqWlsbCTr\nfWyolLfZUv5mR3mbLeVvdpS32Uorf2vZC3Vy4u2JwAvx9S3Ap2Nv1P2BZe7+NnAn8AEz2zR2XvhA\nnCYiIiKyQallG7gfmNkOQDvwBnBOnH4bcCwwG1gJnAng7kvM7LvAY3G5i9x9SXWTLCIiIlJ7mbaB\n6wvMbBEhQMzSKGBxxvvYUClvs6X8zY7yNlvK3+wob7PVXf5u7e6bd7eRfh/AVYOZPV5Og0PpOeVt\ntpS/2VHeZkv5mx3lbbbSyl/dSktEREQkZxTAiYiIiOSMArh0XFHrBPRjyttsKX+zo7zNlvI3O8rb\nbKWSv2oDJyIiIpIzKoETERERyRkFcBUws6PN7EUzm21m36h1evoDM3vdzJ4zs6fN7PE4baSZ3WVm\nL8fnTWudzrwws1+b2UIzez4xrWR+xsGzL4vH87NmtlftUt73dZK3F5rZ3Hj8Pm1mxybmnR/z9kUz\nO6o2qc4HM5tgZveZ2Uwzm2FmX47TdexWqIu81bGbAjMbbGaPmtkzMX+/E6dPMrNHYj7+0cwGxumD\n4vvZcf7EcvelAK6XzKwe+BlwDLATcIqZ7VTbVPUbh7n7Holu1t8A7nH3ycA98b2U5zfA0UXTOsvP\nY4DJ8XE2cHmV0phXv2H9vAX4cTx+93D32wDiueFkYOe4zs/jOURKawX+xd13AvYHzo15qGO3cp3l\nLejYTUMLcLi77w7sARwd7yr1Q0L+bgcsBT4Tl/8MsDRO/3FcriwK4HpvX2C2u7/q7quBawm3BJP0\nnQj8Nr7+LXBSDdOSK+7+AFB8x5LO8vNE4HceTAc2MbOx1Ulp/nSSt505EbjW3Vvc/TXCnWb2zSxx\nOefub7v7k/H1e8AsYDw6divWRd52RsduD8RjsCm+HRAfDhwOXBenFx+7hWP6OuD9Zmbl7EsBXO+N\nB95KvJ9D1z8CKY8DfzOzJ8zs7DhtdLwfLsB8YHRtktZvdJafOqbTcV6sxvt1orpfedtLsUppT+AR\ndOymqihvQcduKsys3syeBhYCdwGvAO+6e2tcJJmHa/M3zl8GbFbOfhTASV9zkLvvRagSOdfMDknO\n9NBtWl2nU6L8TN3lwLaEqpO3gR/VNjn5ZmbDgOuBr7j78uQ8HbuVKZG3OnZT4u5t7r4HsCWhtHLH\nLPajAK735gITEu+3jNOkAu4+Nz4vBG4kHPwLCtUh8Xlh7VLYL3SWnzqmK+TuC+LJux24ko6qJuVt\nD5nZAEKAcY273xAn69hNQam81bGbPnd/F7gPOIBQrd8QZyXzcG3+xvkbA++Us30FcL33GDA59iwZ\nSGjkeUuN05RrZjbUzIYXXgMfAJ4n5OvpcbHTgZtrk8J+o7P8vAX4dOzRtz+wLFFdJWUoanf1IcLx\nCyFvT449ziYRGts/Wu305UVsA/T/gFnu/v/bu5dQq6o4juPfn92KrKBAswZBBSGYpJGBYAMdNHFQ\ng6S3kZhJj0mjpElUDhwVEQgWBqKUmCGUaCJcqSglwQc+SoowCJo0SIiI1P4N9pJOovi6edvX7wcO\nZ7PXfqyz2Bz+rP/aa70xUOSze4FO17Y+uyMjycQk17Xtq4D76MYZbgPmtcNOfnZPPNPzgOE6ywl6\nh858iE6lqo4leQHYAlwGvFdVB0a5Wn03CdjQxm8OAe9X1adJdgLrkiwEfgQeGsU69kqSD4DZwIQk\nPwGvAMs4dXtuAubSDVL+HVhw0SvcI6dp29lJptOl9g4DiwGq6kCSdcBBurcAn6+q46NR756YBcwH\n9rWxRAAv47M7Ek7Xto/67I6Im4BV7U3dccC6qtqY5CCwNslSYDddEE37Xp3ke7qXoh452xu5EoMk\nSVLPmEKVJEnqGQM4SZKknjGAkyRJ6hkDOEmSpJ4xgJMkSeoZAzhJY1KSw0m+TbJn4HPLGc7Z0+Zu\nGon7P5Vk/ZmPlKRz5zxwksayeVW1/8yHddryN5L0v2cPnKRLSpJK8mrrbTuU5MGTyq5JMi7J8taD\ntzfJlwPHPJlkX1v0e0OSG9r+K5KsSPJdku38sxTRifNeSvJ1kl1JPklyY9v/QLveniT7k8y+OC0h\nqc/sgZM0lq1P8kfbPlZVM9r28aqanmQy8FWSL9r6uydMA+YAU6rqryTXAySZSrcawN1V9XOS14G3\ngYfpZq6/FZgCXA58TjejPUmeoFsofGa73rN0i4U/DrwGPFNV29vs7Vf/N00haSwxgJM0lp0uhboS\noKoOJdkFzOTfaxn/QBeErUwyDGxs++cAmwbW2VwB7B0oW1VVR4GjSdYA97ay+4EZwK6BpeKOtLJh\n4M0kHwGbzyXlK+nSZQpVkk5SVUeAO4C1wJ3AgRMpz/MUYGlVTW+fqVU1q93rRWAR8CfwYZJFF1h9\nSZcAAzhJl6IFAEluB+4CdgwWJpkIjK+qLcASut6y24BtwNyBYG4RsLVtDwPzkwy1N1kfG7jkx8Bz\nA6nYK5NMa9uTq2pfVb0FrAHuGfFfK2nMMYUqaSwbHAMH8HT7HkqyGxgPLD5p/BvAzcC7SYbo/ic3\nAzva+LUlwNYkRZdqXdzOeYeut+4b4BdgJzAJoKpWJ5kAfNZSqOOA5XTp12UtkDwG/AosHLFfL2nM\nSlWNdh0k6aJpgde1VfXbaNdFks6XKVRJkqSesQdOkiSpZ+yBkyRJ6hkDOEmSpJ4xgJMkSeoZAzhJ\nkqSeMYCTJEnqGQM4SZKknvkbpIYIy/AMdTUAAAAASUVORK5CYII=\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x10b905fd0>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "visualize.rewards(sum_rewards)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Run Environment Interactively"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {
    "scrolled": true
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Current State: 47\n",
      "o  o  o  o  o  o  o  o  o  o  o  o\n",
      "o  o  o  o  o  o  o  o  o  o  o  o\n",
      "o  o  o  o  o  o  o  o  o  o  o  o\n",
      "o  C  C  C  C  C  C  C  C  C  C  x\n",
      "\n",
      "Finished\n"
     ]
    }
   ],
   "source": [
    "utils.run_environment_greedy(env, Q)"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 2",
   "language": "python",
   "name": "python2"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 2
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython2",
   "version": "2.7"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
